• Blog
  • Protoneer Shop
  • Projects
    • GRBL Arduino Library
    • Arduino CNC Shield – 100% GRBL Compatible
    • Arduino MORE-CORE Shield – Multi-core Setup
  • Contact Us
Protoneer.co.nz Electronic Prototyping Specialists

Arduino CNC Shield – 100% GRBL Compatable

2015/08/30 8:01 pm / 243 Comments / Bertus Kruger / Featured

Do it yourself CNC projects are popping up everywhere and we decided that we wanted to contribute to the growth.

Here are a few of our design goals:

  • Modular Design – We wanted to do more than just keep cost down. We wanted things to be reusable and up-gradable. (Arduino , Individual Stepper Motor Drivers and more…)
  • Compact Design – Squeezing a 4 axis design into a board the same size and Arduino Uno.
  • Opensource Software – 100% GRBL compatible (G-Code Interpreter)
  • Opensource Hardware – Arduino has opened up the power of micro-controllers to everyone. (Easy but powerful computing)
  • Evolving Development – We are keen to improve on the design and welcome all feedback.

NOW AVAILABLE at our Ebay store… http://stores.ebay.com/Protoneer
… or in assembled from from Elecrow.com

Arduino CNC Shield V3.10 – GRBL v0.9 compatible (PWM Spindle + Soft limits)Arduino_CNC_Sheild_V310_Populated

Arduino CNC Shield V3.00Arduino CNC Shield V3

Arduino CNC Shield V2.00Arduino CNC Shield - Pololu Stepper Drivers Installed

  • Availability
  • Board Layout
  • Bill Of Materials
  • Assembly
  • GRBL Software/Firmware
  • Versions
  • Gerber Files
  • License and Warnings
  • Extra Reading

Availability

NOW AVAILABLE at our Ebay store… http://stores.ebay.com/Protoneer
… or in assembled form from Elecrow.com

If you are interested in updates please add your email address to the following mailing list and we will send you more details as the shield develops.

Arduino CNC Shield – Mailing List

Board Layout

The following image displays the functionality of the Arduino pins as used by GRBL.

GRBL Pin Layout

GRBL Pin Layout

We have designed the Arduino CNC Shield to use all the pins that GRBL implemented. We have also added a few extra pins to make things a little easier.

 

Arduino CNC Shield V3
Arduino CNC Shield V3 - Top View
Arduino-CNC-Shield-V3-Layout

Arduino-CNC-Shield-V3-Yellow2
Arduino-CNC-Shield-V3-Yellow
Arduino-CNC-Shield-V3-4th-Axis-Jumpers

Arduino-CNC-Shield-V3-Stepper Breakout
Arduino-CNC-Shield-V3-4th Axis Select
Arduino-CNC-Shield-V3-4th Clone X-Axis

Arduino-CNC-Shield-V3-4th Clone Y-Axis
Arduino-CNC-Shield-V3-4th Clone Z-Axis
Arduino-CNC-Shield-V3-4th D12-D13

Arduino-CNC-Shield-V3-Comms-Breakout
Arduino-CNC-Shield-V3-PCB-Front
Arduino-CNC-Shield-V3-PCB-Back

Arduino-CNC-Shield-V3-Left
Arduino-CNC-Shield-V3-Right
Arduino-CNC-Shield-V3-Back

Arduino-CNC-Shield-V3-Front
Arduino-CNC-Shield-V3-Top
Arduino-CNC-Shield-V3-HalfStepping-Jumpers

Arduino-CNC-Shield-V3-Horizontal-Caps
Arduino-CNC-Shield-V3-URL
Arduino CNC Shield - Assembled

Arduino CNC Shield - Pololu Stepper Drivers Installed
Arduino CNC Shield - 4Pin Stepper Connectors
Arduino CNC Shield - 12-36V Power Connector

Arduino CNC Shield - 50V Capacitors
Arduino CNC Shield - End Stop Pins
Arduino CNC Shield - I2C Pins

Arduino CNC Shield - Stepper Motor Coil Indicator
Arduino CNC Shield - Micro Stepping Jumpers
Arduino CNC Shield - PCB Front

Arduino CNC Shield - PCB Back
Arduino CNC Shield - Board Layout
Arduino-CNC-Shield-Scematics-V3.XX

 

Extra pins:

  • Limit switch pins have been doubled up so that each axis has a “Top/+” and “Bottom/-“. This makes it easier to install two limit switches for each axis. (For use with a normally open switch)
  • EStop – These pins can be connected  to an emergency stop switch. This does the same as the RESET button on the Arduino board. (We do advice that an extra emergency button also be installed that cuts power to all machinery. A REAL EMERGENCY BUTTON)
  • Spindle  and coolant control has their own pins.
  • External GRBL Command Pins have been broken out allowing you to add buttons for Pause/Hold , Resume  and Abort.
  • Serial Pins (D0-1) and I2C Pins (A4-5) have their own break out pins for future extensions. I2C can later be implemented by software to control things like spindle speed or heat control.
  • Version 3.00 of the board added a jumpers to configure the 4th axis(Clone the other axis’s or run from Pin D12-13), Comms Header(RX+TX , I2C) and a Stepper Control Header(All Pins needed to run 4 steppers)

Bill Of Materials

  • Arduino CNC Shield PCB 
  • 100uF 50v 8mm High Capacitors (493-3289-ND)
  • Jumpers (A26228-ND)
  • 8-Pin Female Headers(S7006-ND)
  • Male Headers(A26514-40-ND)
  • Tactile Switch (450-1650-ND)
  • Screw Terminal 5mm (A97996-ND)
  • Pololu Stepper Drivers . (Please note that the shield was designed to work with A4988 compatable polulu drivers)
  • 10K pull-up resistors

Assembly Instructions

Click here for the Assembly instructions for the Arduino CNC Shield V3.XX
Click here for the Assembly instructions for the Arduino CNC Shield V2.XX

GRBL Software/Firmware

GRBL is opensource software that runs on an Arduino Uno that takes G-Code commands via Serial and turns the commands into motor signals.

The GRBL source Code is located here.

I have also written a few turorials on uploading the firmware onto an Arduino Board:

  • Quick GRBL setup guide for Windows
  • GRBL Arduino Library – Use the Arduino IDE to flash GRBL directly to your Arduino

Versions

  • Version 3.10
    • Added Support for GRBL 0.9v with PWM Spindle.
  • Version 3.00 (4 Axis)
    • Enlarged board to add a 4th Axis that can clone the X,Y or Z axis. With a 4th option to use pin D12-13 to control it.(Setting up the 4th Axis)
    • Added a breakout header for all the Axis’s.
    • Added a communication header for UART(Serail) and I2C.
    • Added the a connector for an optional fuse.(Fuse not supplies as it needs to be selected for the current that will be used.)
    • Capacitors are mounted horizontally giving more clearance between them and the stepper drivers. Good for ventilation.
    • Added a pull-up resistor on the axis enable pins. This prevents the pin from being in a floating state.
    • Added 2 mounting holes
  • Version 2.02 (3 Axis)
    • Fixed High Voltage label
    • Removed Diode D1.
    • Reduced the number of Via’s.
  • Version 2.01
    • Added a 5V Breakout
    • Filled in both sides with Ground Copper
    • Moved RX/TX pins to the side so that 26-Pin header can be used. Same as the headers on a Raspberry Pi.
    • Small Text Changes
  • Version 2.00
    • First official version of the CNC Shield.
    • All pins used by GRBL has been broken out.

Gerber Files

Arduino CNC Shield Ver3.00 – Gerber Files

Arduino CNC Shield Ver2.xx – Gerber Files

License and Warnings

This is a work in progress design. All liabilities are on the users at their own risk and they take full responsibility for any harm that might happen to them or their property.

Creative Commons License
CNC Shield by Protoneer.com is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Based on a work at info.protoneer.com/1

Extra Reading

  • Build Your Own CNC Machine – By James Floyd Kelly and P. Hood-Daniel
  • CNC Machining Handbook: Building, Programming, and Implementation– By Alan Overby
  • Pololu Stepper Motor Drivers – http://www.pololu.com/catalog/category/120
  • Pololu FQA covering how to connect stepper motors – http://www.pololu.com/catalog/product/1182/faqs
  • GRBL Wiki including upload, setup and running – https://github.com/grbl/grbl/wiki/_pages
  • GRBL Supported G-Codes – www.shapeoko.com/wiki/index.php/Grbl

Related Posts

  • Raspberry Pi CNC Board / HatRaspberry Pi CNC Board / Hat
  • Arduino CNC – GRBL Shields / BoardsArduino CNC – GRBL Shields / Boards
  • Grbl (Arduino G-Code Processor) – Pin LayoutGrbl (Arduino G-Code Processor) – Pin Layout
  • Opensource CNC controller written for Arduino’s (G-code interpreter GRBL)Opensource CNC controller written for Arduino’s (G-code interpreter GRBL)
  • Quick GRBL setup guide for Windows (Arduino G-Code Interpreter)Quick GRBL setup guide for Windows (Arduino G-Code Interpreter)
  • Arduino to Raspberry Pi Bridge Shield – PCB’s finally Arrived.Arduino to Raspberry Pi Bridge Shield – PCB’s finally Arrived.
  • SparqEE CELLv1.0: Cellular made easy (Arduino/Pi/+)SparqEE CELLv1.0: Cellular made easy (Arduino/Pi/+)
  • GRBL Arduino Library – Use the Arduino IDE to flash GRBL directly to your ArduinoGRBL Arduino Library – Use the Arduino IDE to flash GRBL directly to your Arduino
Zemanta

Share this:

  • Email
  • Facebook
  • Twitter
  • Google

Like this:

Like Loading...
Posted in: Arduino, CNC, Shields / Tagged: Arduino, Arduino CNC, Arduino Shield, CNC, DIY CNC, grbl

243 Thoughts on “Arduino CNC Shield – 100% GRBL Compatable”

  1. Tom Jensen on 2013/07/19 at 2:40 am said:

    Nice looking shield. Any links to retailers, or better yet the board design?
    I can’t find it in your online store.

    Reply↓
    • Bert on 2013/07/19 at 5:52 pm said:

      Thanks for the complements. We are in the process of beta testing the shield so that we can finalize the design.

      Would you be interested in being a Beta Tester?

      Reply↓
      • Tom Jensen on 2013/07/19 at 11:08 pm said:

        Bert,
        Definitely, I have actually designed a board and made my own prototype shield, but yours is more compact and better laid out.
        Will even pay for it if necessary. Send a private e-mail if interested.
        TomJ

        Reply↓
        • Bert on 2013/07/20 at 8:38 am said:

          Thanks Tom… I will send you an Email shortly.

          If anyone else is interested please let me know, so that I can finalize the design and get it out there.

          Reply↓
          • david taylor on 2013/07/29 at 11:59 am said:

            I’m interested in beta testing. I’ve got 3 pololu drivers and stepper motors just waiting to be used.

          • Bert on 2013/07/31 at 9:35 pm said:

            Hi David, I have sent you and email.

          • Justin Nesselrotte on 2013/07/29 at 12:34 pm said:

            I’d like to beta test as well if at all possible. I have a project that needs a control board. I have the drivers, motors, and arduino.

          • Bert on 2013/07/31 at 9:33 pm said:

            Thanks.. I have sent you an email with the details.

  2. Victor on 2013/07/24 at 1:51 am said:

    Hi Bert!
    I have finished bild my cnc project and looking for control board. I plan to use Arduino Uno controller. You board is nice I could try to use device as a Beta tester .

    Reply↓
    • Bert on 2013/07/24 at 10:24 am said:

      I can do… Will send you an email shortly. 😉

      Reply↓
  3. Blessed on 2013/07/26 at 7:39 pm said:

    I also would like to be your beta tester. I am also prepared to pay for this.

    Reply↓
    • Bert on 2013/07/27 at 5:03 pm said:

      Will send you a mail shortly… 😉

      Reply↓
  4. Ben Carter on 2013/07/27 at 4:51 pm said:

    Hi, im VERY keen on your CNC board, Im going to turn my old mill into a CNC and also thinking about building my own CNC foam cutter for work. im happy to pay for this board, also happy to beta test. cheers Ben

    Reply↓
    • Bert on 2013/07/27 at 5:04 pm said:

      Hi Ben, thanks for the interest. I will send you email with details shortly.

      Reply↓
  5. Ben Carter on 2013/07/27 at 4:59 pm said:

    VERY keen to get my hands on this, i have a few CNC projects i want to build and this looks like it will be perfect. please email me about purchasing and beta testing.
    thanks

    Reply↓
    • Bert on 2013/07/27 at 5:13 pm said:

      haha… That’s exactly why I designed this little shield. I wanted a CNC board that’s modular and as reusable as possible.

      Also have a few more ideas for extensions but I will work on that after I have received so feedback from users.

      Reply↓
  6. Pingback: GRBL compatible Arduino CNC shield - RaspberryPiBoards

  7. Pingback: GRBL compatible Arduino CNC shield | Blog of MPRosa

  8. Pingback: How to create an Open Source CNC | Alan C. Assis

  9. Robert on 2013/07/29 at 2:44 pm said:

    Hi, I am building 2 CNC’s. One for milling and one for Laser cutting, etching. I am using 5Volt Nema 17’s.

    This would be perfect if it could use the DRV8834 module.

    Can I be a beta tester or can you sell me a bare board or the files to have it made?

    Reply↓
    • Bertus Kruger on 2013/08/04 at 8:43 am said:

      Thanks Robert… I have sent you an email with the details. At the moment there are a lot of people asking to be beta testers so I can only do one kit at the moment.

      I have also uploaded the Gerber files if you would rather get the boards made…. Kind regards,Bertus.

      Reply↓
  10. elerepair on 2013/07/29 at 2:52 pm said:

    mail me the details on testing.
    Willing to give it a try. 😉

    Reply↓
    • Bertus Kruger on 2013/08/04 at 8:34 am said:

      Details have been emailed.. 😉

      Reply↓
  11. Steve on 2013/07/30 at 3:18 am said:

    Nice looking shield. I am a long time user of GRBL and one thing that comes in handy on a GRBL shield is a socket for an optional 4rth stepper driver that can be used for a second motor on the Y-axis. Jumpers that can slave this 4th driver to the standard Y-axis stepper signal, and ideally, an optional logic inverter on the direction pin for the 4th driver.

    Reply↓
    • Bert on 2013/07/30 at 5:16 am said:

      Yes… I was looking at that option, but I was running out of room on the shield. :)

      A nice option would be to have a jumper configuration of some kind that allows you to select what axis you want to double up.

      Reply↓
      • Justin Nesselrotte on 2013/07/30 at 5:32 am said:

        How exactly does “doubling up” work? Does that mean that whatever steps are sent to the one driver are sent to the other, or what? If you wanted to have a fourth axis separate, like for an Extruder or something, you could have take the spindle enable pin, and the spindle direction pin, and make those direction and step.

        How hard would this be to do in GRBL? I know it would be doable outside of GRBL in your own sketch.

        (Also, I want to beta test, but the other post hasn’t showed up yet, and I don’t know why)

        Reply↓
        • Bert on 2013/07/30 at 6:08 am said:

          Thanks for the question. I have added a little section on Beta testing.

          By doubling up you are basically just connecting 2+ stepper drivers up to the same stepper and direction pins.

          Using those pins would be an option. But the way GRBL was designed will not make it easy. GRBL is very efficient at what it does and
          sends pin changes in one call. So stepp